home *** CD-ROM | disk | FTP | other *** search
/ PCGUIA 117 / PC Guia 117.iso / Software / Utils / Software6 / Product9 / flashblock-1.3.1-fx+mz+tb.xpi / install.js < prev    next >
Text File  |  2005-04-02  |  6KB  |  156 lines

  1. const APP_DISPLAY_NAME = "Flashblock";
  2. const APP_NAME = "flashblock";
  3. const APP_PACKAGE = "/Ted Mielczarek,Ted Drake/flashblock";
  4. const APP_VERSION = "1.3.1";
  5. const APP_DEFAULTS = "Flashblock Defaults";
  6.  
  7. const APP_JAR_FILE = "flashblock.jar";
  8. const APP_CONTENT_FOLDER = "content/flashblock/";
  9.  
  10. const APP_SUCCESS_MESSAGE = "Flash objects will now be replaced with a button that you can click on to view them.\n\n";
  11.  
  12. var   APP_PLATFORM = ""
  13.  
  14. // start it all up
  15. initInstall(APP_NAME, APP_PACKAGE, APP_VERSION);
  16.  
  17. // get user's profile chrome directory
  18. var chromef = getFolder("Profile", "chrome");
  19. var prefDir = getFolder("Program", "defaults/pref")
  20. // add jar file
  21. var err = addFile(APP_PACKAGE, APP_VERSION, "chrome/" + APP_JAR_FILE, chromef, null, true);
  22. if(err == SUCCESS) {
  23.     err = addFile(APP_DEFAULTS, APP_VERSION, "defaults/preferences/flashblock.js", prefDir, "flashblock.js", true);
  24. // on unixy platforms, global defaults directory is not writable! Ignore this error!
  25.     if(err == ACCESS_DENIED || err == READ_ONLY) {
  26.         err = SUCCESS;
  27.     }
  28. }
  29.  
  30. if(err == SUCCESS) {
  31.     var jar = getFolder(chromef, APP_JAR_FILE);
  32.     registerChrome(CONTENT | PROFILE_CHROME, jar, APP_CONTENT_FOLDER);
  33.     registerChrome(LOCALE | PROFILE_CHROME, jar, 'locale/en-US/'+APP_NAME+'/');
  34.     registerChrome(LOCALE | PROFILE_CHROME, jar, 'locale/it-IT/'+APP_NAME+'/');
  35.     registerChrome(LOCALE | PROFILE_CHROME, jar, 'locale/nl-NL/'+APP_NAME+'/');
  36.     registerChrome(LOCALE | PROFILE_CHROME, jar, 'locale/de-DE/'+APP_NAME+'/');
  37.     registerChrome(LOCALE | PROFILE_CHROME, jar, 'locale/fr-FR/'+APP_NAME+'/');
  38.     registerChrome(LOCALE | PROFILE_CHROME, jar, 'locale/pl-PL/'+APP_NAME+'/');
  39.     registerChrome(LOCALE | PROFILE_CHROME, jar, 'locale/ko-KR/'+APP_NAME+'/');
  40.     registerChrome(LOCALE | PROFILE_CHROME, jar, 'locale/pt-BR/'+APP_NAME+'/');
  41.     registerChrome(LOCALE | PROFILE_CHROME, jar, 'locale/da-DK/'+APP_NAME+'/');
  42.     registerChrome(LOCALE | PROFILE_CHROME, jar, 'locale/hu-HU/'+APP_NAME+'/');
  43.     registerChrome(LOCALE | PROFILE_CHROME, jar, 'locale/cs-CZ/'+APP_NAME+'/');
  44.     registerChrome(LOCALE | PROFILE_CHROME, jar, 'locale/es-ES/'+APP_NAME+'/');
  45.     registerChrome(LOCALE | PROFILE_CHROME, jar, 'locale/ru-RU/'+APP_NAME+'/');
  46.     registerChrome(LOCALE | PROFILE_CHROME, jar, 'locale/ro-RO/'+APP_NAME+'/');
  47.     registerChrome(LOCALE | PROFILE_CHROME, jar, 'locale/de-AT/'+APP_NAME+'/');
  48.     err = performInstall();
  49.     if(err == SUCCESS || err == REBOOT_NEEDED) {
  50.         var gPlatform = getPlatform();
  51.         alert("Debug: We think your OS is: " + APP_PLATFORM);
  52.         if(gPlatform == 'unix') {
  53.             uxerr = setUnixPermissions();
  54.             alert("Debug: setUnixPermissions returned with: " + uxerr);
  55.         };
  56.         msg = APP_NAME + " " + APP_VERSION + " has been succesfully installed.\n"
  57.             +APP_SUCCESS_MESSAGE
  58.             +"Please restart your browser to enable flashblock.";
  59.         alert(msg);
  60.     }
  61.     else if(err == CHROME_REGISTRY_ERROR) {
  62.         msg = "Install failed. There was a Chrome Registry Error: " + err
  63.             + ".\nPlease restart Mozilla and try installing "
  64.             + APP_DISPLAY_NAME + " again.";
  65.         alert(msg);
  66.         resetError();
  67.         cancelInstall(err);
  68.     }
  69.     else {
  70.         alert("Install failed. Could not performInstall. Error code:" + err);
  71.         cancelInstall(err);
  72.     }
  73. }
  74. else {
  75.     alert("Install failed. Could not addFile: " + APP_JAR_FILE + ". Error code:" + err);
  76.     cancelInstall(err);
  77. }
  78.  
  79. function getPlatform() {
  80.     var platformStr, platformNode;
  81.  
  82.     if ('platform' in Install) {
  83.         platformStr = new String(Install.platform);
  84.         APP_PLATFORM = platformStr;
  85.         // Mac OS X (aka Darwin) is a real unix system
  86.         if (!platformStr.search(/.*Darwin/))
  87.             platformNode = 'unix';
  88.         else if (!platformStr.search(/^Macintosh/))
  89.             platformNode = 'mac';
  90.         else if (!platformStr.search(/^Win/))
  91.             platformNode = 'win';
  92.         else if (!platformStr.search(/^OS\/2/))
  93.             platformNode = 'win';
  94.         else if (!platformStr.search(/unix|sun|linux/i))
  95.             platformNode = 'unix';
  96.         else if (getFolder("Unix Lib") != null)
  97.             platformNode = 'unix';
  98.         else
  99.             platformNode = 'unknown';
  100.     }
  101.     else
  102.     {
  103.         if (getFolder("Unix Lib") != null)
  104.             platformNode = 'unix';
  105.         else if (getFolder("Mac System")!= null)
  106.             platformNode = 'mac';
  107.         else if(getFolder("Win System")!= null)
  108.             platformNode = 'win';
  109.         else
  110.             platformNode = 'unknown';
  111.     }
  112.     return platformNode;
  113. }
  114.  
  115. function setUnixPermissions() {
  116.     initInstall(APP_NAME, APP_PACKAGE, APP_VERSION);
  117.     var err, cmdPath;
  118.     var chromeF = getFolder(getFolder("Profile", "chrome"), APP_JAR_FILE);
  119.     var cmdArgs = "u+rwx,go+r ";
  120.  
  121.     alert("Debug: The next step will try to set unix permissions");
  122.  
  123.     cmdPath = chromeF;
  124.     if (!File.isFile(cmdPath)) {
  125.         alert("Cannot find :" + cmdPath);
  126.         return DOES_NOT_EXIST;
  127.     };
  128.  
  129.     cmdPath = getFolder("OS Drive");
  130.     if (!File.isDirectory(cmdPath)) {
  131.         alert("Cannot find OS Drive :" + cmdPath);
  132.         return DOES_NOT_EXIST;
  133.     };
  134.     cmdPath = getFolder(cmdPath, "bin");
  135.     if (!File.isDirectory(cmdPath)) {
  136.         alert("Cannot find bin directory:" + cmdPath);
  137.         return DOES_NOT_EXIST;
  138.     };
  139.     cmdPath = getFolder(cmdPath, "chmod");
  140.     if (!File.isFile(cmdPath)) {
  141.         alert("Cannot find chmod:" + cmdPath);
  142.         return DOES_NOT_EXIST;
  143.     };
  144.     err = File.execute(cmdPath, cmdArgs + chromeF );
  145.     if (err != SUCCESS) {
  146.         alert("chmod didn't work, Error :" + err + " " + cmdPath + " " + cmdArgs + chromeF);
  147.         cancelInstall(err);
  148.     }
  149.     else {
  150.         err = performInstall();
  151.         if(err != SUCCESS) {
  152.             alert("setUnixpermissions Error: "+ err + " " + cmdPath + " " + CmdArgs + chromeF);
  153.         }
  154.     }
  155.     return err;
  156. }